Embodiments of the inventive subject matter generally relate to the field of computing, and, more particularly, to meta-heuristic optimization.
Software tools employ metaheuristic optimization algorithms to solve optimization problems. Metaheuristic optimization algorithms can be categorized as population-based and trajectory-based. Examples of population-based metaheuristic optimization algorithms include evolutionary algorithms (e.g., genetic algorithm, differential evolution), particle swarm optimization algorithms, ant colony optimization algorithms, and bee algorithms.
Metaheuristic optimization algorithms can be used to search a solution space for the best performing worst-case solution. That is, a designer may wish to optimize a design for situations where it is only the worst-case behavior that matters. For example, a designer might optimize an embedded circuit design to maximize performance under worst-case process variations and operating environment. As another example, a designer might optimize a system to minimize the worst-case power consumption.
Design problems have many variables. Some variables are under the control of the designer, such as wire length and or thickness. Other variables are outside the designer's control, such as manufacturing tolerances or environment variables (e.g., ambient temperature, humidity, data patterns, etc.). The worst-case environment for one design may not be the worst-case for another. Since the same set of environmental/manufacturing variables can have different impacts upon different designs, designers search for the worst-case scenario for each design under consideration. Also, the combined set of environment and manufacturing variables can lead to a design space that is quite large, and difficult or impossible to exhaustively explore.